package com.baofu.paycore.service.facade.model.withdraw;

import com.baofu.paycore.service.facade.model.PayBaseDTO;
import lombok.*;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 提现请求 DTO
 *
 * User: LZQ  Date: 2014/11/20 ProjectName: paycore Version: 5.0.0
 */
@Getter
@Setter
@NoArgsConstructor
@ToString(callSuper = true)
public class WithdrawDTO extends PayBaseDTO implements Serializable {

    private static final long serialVersionUID = -8890304893609073437L;

    /** 客户号 */
    @NotBlank(message = "客户号不能为空")
    @Length(max = 16, message = "客户号最大长度不能超过16")
    private String contractNo;

    /**
     * 账户号
     */
    @NotBlank(message = "资金账户号不能为空")
    @Length(max = 32, message = "资金账户号最大长度不能超过16")
    private String accountNo;

    /**
     * 银行编号
     */
    private String bankCode;

    /**
     * 卡类型
     */
    private String cardType;

    /**
     * 提现资金处理单
     */
    @NotNull(message = "提现资金处理单不能为空")
    @Valid
    private WithDrawFundDTO withDrawFundDTO;
}
